<?php

	Class Maquinas{
		
		private $Conexion;
		private $InfoClientesDistri;
		private $InfoMaquina;
		private $InfoCliente;
		private $NumCustomer;
		private $OrderNo;
		private $Almacen;
		private $NLinea;
		private $Contrato;
		
		public  $error;
		
		
		public function __construct(){
			$this->error="";
			$this->NLinea=10000;
			$this->Conexion = new Conexion(); //Creacion objeto conexion
			$this->getDatosDistribuidor();
		}
		
		public function getDatosDistribuidor(){
			$DatosDistribuidor = $this->Conexion->getDatosDistribuidor();
			$this->NumCustomer=$DatosDistribuidor['Customer WEB No'];
			$this->OrderNo=$DatosDistribuidor['Order No'];
			$this->Almacen=$DatosDistribuidor['Almacen Relacionado'];
		}
		
		//Funcion para obtener todos los datos de los clientes por distribuidor
		public function mostrarDatosClientes(){
			$this->InfoClientesDistri = $this->Conexion->getClientes($this->NumCustomer);
			return $this->InfoClientesDistri;
		}
		
		//Funcion para obtener los datos de un cliente concreto del distribuidor
		public function datoCliente($id){
			$this->InfoCliente=$this->Conexion->getInfoCliente($id);
			return @array_map('utf8_encode',$this->InfoCliente);
		}
		
		public function mostrarDatosMaquinas($numContacto){
			$this->InfoMaquina = $this->Conexion->getMaquinas($numContacto);
			return $this->InfoMaquina;
		}
		
		/*Funcion para obtener los nombres de los productos*/
		public function getNombreItem($itemNo){
			return $this->Conexion->getNombreItem($itemNo);
		}
		
		/*Funcion para obtener el numero de contrato*/
		public function getNumContrato($movProducto){
			$this->Contrato=$this->Conexion->getContrato($movProducto);
			return $this->Contrato;
		}
		
		/*Funcion para saber el tipo de contrato(RETING O DEPOSITO)*/
		public function getContratoTipo($contrato){
			$tipoContrato=$this->Conexion->getCodContrato($contrato);
			return $tipoContrato;
		}
		
		public function maquinasRecogidas($arr){
			$res = Array();
			foreach ($arr as $value) {
				if($value['Mov Producto Asociado Web']!=0){
					$res[]=$value;
				}
			}
			return $res;
		}
		
		public function modificarCliente($post){
			$idCliente=$post['cdCliente'];
			$nombre=$post['nombre'];
			$nombreCom=$post['nomComer'];
			$cif=$post['cif'];
			$direccion=$post['dire'];
			$ciudad=$post['poblacion'];
			$cp=$post['cp'];
			$fax=$post['fax'];
			$movil=$post['tlf'];
			$email=$post['mail'];
			$web=$post['web'];
			
			$arr=array($idCliente,$nombre,$nombreCom,$cif,$direccion,$ciudad,$cp,$fax,$movil,$email,$web);
			
 			if($this->Conexion->updateCliente($arr)){
 				$this->error="Customer successfully updated";
 			}
 			else{
 				$this->error="error";
 			}
 			return $this->error;
		}
		
		/*Retirada de las maquinas*/
		public function recogidaMaquina($post){
			if($this->Conexion->recogerMaq($post)){
				$this->error="Succesful";
			}
			else{
				$this->error="Error";
			}
			return $this->error;
		}
		
		/*Solicitud de recogida*/
		public function solicitud($post, $DatosClientes){
			//Nuevo cliente
			$NombreFiscal=$DatosClientes['Name'];
			$Poblacion=$DatosClientes['City'];
			$Cif=$DatosClientes['VAT Registration No_'];
			$Direccion=$DatosClientes['Address'];
			$Consumo=$DatosClientes['KG ESTIMADOS'];
			$NombreComercial=$DatosClientes['Search Name'];
			$Cp=$DatosClientes['Post Code'];
			$ActualCafe='';
			$Tlf=$DatosClientes['Phone No_'];
			
			$NumSerie=$post['numSerie'];
			$CodCliente=$post['codCliente'];
			$Codigo=$post['codMaq'];
			$euros='0';
			$DescripcionMaq=$this->Conexion->getNombreItem($Codigo);
			$EstadoMaq='';
			$TipoSerie='';
			$TipoCliente='';
			$Contribucion='';
			$Observaciones='';
			$TipoContrato='';
			$TipoRecibo='';
			$Comentarios='';
			$Grupo='1';
			$Cantidad='1';
			$unidad='';
			$tipoInsert='2';
			$enlace="";
			
			if($this->Conexion->insertCliente($NombreFiscal,$Poblacion,$Cif,$Direccion,$Consumo,$NombreComercial,$Cp,$ActualCafe,
 								  		  	  $Tlf,$TipoCliente,$Contribucion,$Observaciones,$TipoContrato,$TipoRecibo,$Comentarios,
 								  		   	  $this->OrderNo,$this->NumCustomer,$tipoInsert,$euros,$CodCliente,$enlace)){
				
				if($this->Conexion->insertMaq($this->OrderNo,$this->Almacen,$EstadoMaq,$NumSerie,$DescripcionMaq,
											  $Codigo,$this->NLinea,$tipoInsert,$Grupo,$Cantidad,$unidad)){
					
					$this->Conexion->updateOrder(); //<--Incrementa el numero de order
					$this->error="Request sent!";
				}
			}
			else{
				$this->error="Error";
			}
		}
		
		
		/*BUSQUEDA PROXIMA ACTUALIZACION*/
		/*Formulario busqueda datos clientes*/
		public function buscarCliente($pos,$filtro=true) {
			$stringBusqueda="";
			if($filtro){
				$and=false;
				if(isset($_POST['num']) && $_POST['num']!=""){
					$stringBusqueda="[No_] LIKE "."'%".$_POST['num']."%'";
					$and=true;
				}
				if(isset($_POST['alias']) && $_POST['alias']!=""){
					if($and){
						$stringBusqueda.=" AND ";
					} 
					$stringBusqueda.="[Search Name] LIKE "."'%".$_POST['alias']."%'";
					$and=true;
				}
				if(isset($_POST['nombre']) && $_POST['nombre']!=""){
					if($and){
						$stringBusqueda.=" AND ";
					}
					$stringBusqueda.="[Name] LIKE "."'%".$_POST['nombre']."%'";
					$and=true;
				}
				if(isset($_POST['dire']) && $_POST['dire']!=""){
					if($and){
						$stringBusqueda.=" AND ";
					}
					$stringBusqueda.="[Address] LIKE "."'%".$_POST['dire']."%'";
					$and=true;
				}
				if(isset($_POST['ciudad']) && $_POST['ciudad']!=""){
					if($and){
						$stringBusqueda.=" AND ";
					}
					$stringBusqueda.="[City] LIKE "."'%".$_POST['ciudad']."%'";
					$and=true;
				}
				if(isset($_POST['cif']) && $_POST['cif']!=""){
					if($and){
						$stringBusqueda.=" AND ";
					}
					$stringBusqueda.="[VAT Registration No_] LIKE "."'%".$_POST['cif']."%'";
				}
				
				if($stringBusqueda!=""){
					$stringBusqueda=" AND ".$stringBusqueda;
				}
			}
			
			return $this->Conexion->busqueda($this->NumCustomer,$stringBusqueda);
		}
		
	}
	
?>